<?php
declare (strict_types = 1);

namespace app\admin\validate;

use think\Validate;

/**
 * goods验证器类
 * Class Goods
 * @package app\admin\validate
 */
class Goods extends Validate
{
    /**
     * 定义验证规则
     * 格式：'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'goods_name' => 'require|max:25|unique:goods',// 必填验证、长度验证、唯一验证
        'goods_price' => 'require|gt:0',// 必填验证
        'goods_number' => 'require|number',//必填、数字
//        。。。商品图片、商品数量、商品相册
        'goods_logo' => 'require|file|fileExt:png,jpeg,jpg,gif',// 商品logo
//        'email' => 'email',// 验证邮箱
//        'mobile' => 'mobile',// 验证电话
//        'name' => 'chsAlpha'//验证某个字段的值只能是汉字、字母，例如：

    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [
        'goods_name.require' => '商品名称必填',
        'goods_name.unique' => '商品名称不能重复',
        'goods_logo.require' => '商品logo必填'
    ];

    /**
     * 更新数据的验证场景
     */
    public function sceneUpdate()
    {
        # 如果不修改文件了、移除文件验证的规则、添加id的验证规则
        return $this->remove('goods_logo','require|file|fileExt:png,jpeg,jpg,gif')->append('id','require|number');
//        return $this->remove(['goods_logo','goods_name'],['require|file|fileExt:png,jpeg,jpg,gif','require']);
    }
}
